#pragma once
#include"event_loop.h"

// 消息队列能够接收的消息类型
struct task_msg{
    // 有两大类任务类型
    // 1.新建立连接的任务
    // 2.一般的普通任务(类似于主线程推送给子线程)

    enum TASK_TYPE{
        NEW_CONN,   // 1.新建连接的任务
        NEW_TASK,   // 2.一般的任务
    };

    TASK_TYPE type; //任务类型

    // 针对不同的任务类型，共享的内容不同
    union {
        // 1.如果是任务1，那么task_msg应该是一个刚创建好的connfd;
        int connfd;

        // 2.如果是任务2，那么task_msg应该有具体数据参数和具体的回调业务确定
        struct{
            void (*task_cb)(event_loop* loop, void* args);
            void* args;
        };
    };
};
